home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / CIncludes / Icons.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-06  |  16.4 KB  |  444 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Icons.h
  3.  
  4.      Contains:    Icon Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __ICONS__
  21. #define __ICONS__
  22.  
  23.  
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27. /*    #include <ConditionalMacros.h>                                */
  28.  
  29. #ifndef __QUICKDRAW__
  30. #include <Quickdraw.h>
  31. #endif
  32. /*    #include <MixedMode.h>                                        */
  33. /*    #include <QuickdrawText.h>                                    */
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if PRAGMA_ALIGN_SUPPORTED
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. #if PRAGMA_IMPORT_SUPPORTED
  44. #pragma import on
  45. #endif
  46.  
  47.  
  48. enum {
  49. /* The following are icons for which there are both icon suites and SICNs. */
  50.     kGenericDocumentIconResource = -4000,
  51.     kGenericStationeryIconResource = -3985,
  52.     kGenericEditionFileIconResource = -3989,
  53.     kGenericApplicationIconResource = -3996,
  54.     kGenericDeskAccessoryIconResource = -3991,
  55.     kGenericFolderIconResource    = -3999,
  56.     kPrivateFolderIconResource    = -3994,
  57.     kFloppyIconResource            = -3998,
  58.     kTrashIconResource            = -3993,
  59.     kGenericRAMDiskIconResource    = -3988,
  60.     kGenericCDROMIconResource    = -3987,
  61. /* The following are icons for which there are SICNs only. */
  62.     kDesktopIconResource        = -3992,
  63.     kOpenFolderIconResource        = -3997,
  64.     kGenericHardDiskIconResource = -3995,
  65.     kGenericFileServerIconResource = -3972,
  66.     kGenericSuitcaseIconResource = -3970,
  67.     kGenericMoverObjectIconResource = -3969,
  68. /* The following are icons for which there are icon suites only. */
  69.     kGenericPreferencesIconResource = -3971,
  70.     kGenericQueryDocumentIconResource = -16506,
  71.     kGenericExtensionIconResource = -16415,
  72.     kSystemFolderIconResource    = -3983,
  73.     kAppleMenuFolderIconResource = -3982
  74. };
  75.  
  76. enum {
  77. /* Obsolete. Use named constants defined above. */
  78.     genericDocumentIconResource    = kGenericDocumentIconResource,
  79.     genericStationeryIconResource = kGenericStationeryIconResource,
  80.     genericEditionFileIconResource = kGenericEditionFileIconResource,
  81.     genericApplicationIconResource = kGenericApplicationIconResource,
  82.     genericDeskAccessoryIconResource = kGenericDeskAccessoryIconResource,
  83.     genericFolderIconResource    = kGenericFolderIconResource,
  84.     privateFolderIconResource    = kPrivateFolderIconResource,
  85.     floppyIconResource            = kFloppyIconResource,
  86.     trashIconResource            = kPrivateFolderIconResource,
  87.     genericRAMDiskIconResource    = kGenericRAMDiskIconResource,
  88.     genericCDROMIconResource    = kGenericCDROMIconResource,
  89.     desktopIconResource            = kDesktopIconResource,
  90.     openFolderIconResource        = kOpenFolderIconResource,
  91.     genericHardDiskIconResource    = kGenericHardDiskIconResource,
  92.     genericFileServerIconResource = kGenericFileServerIconResource,
  93.     genericSuitcaseIconResource    = kGenericSuitcaseIconResource,
  94.     genericMoverObjectIconResource = kGenericMoverObjectIconResource,
  95.     genericPreferencesIconResource = kGenericPreferencesIconResource,
  96.     genericQueryDocumentIconResource = kGenericQueryDocumentIconResource,
  97.     genericExtensionIconResource = kGenericExtensionIconResource,
  98.     systemFolderIconResource    = kSystemFolderIconResource,
  99.     appleMenuFolderIconResource    = kAppleMenuFolderIconResource
  100. };
  101.  
  102. enum {
  103.     kStartupFolderIconResource    = -3981,
  104.     kOwnedFolderIconResource    = -3980,
  105.     kDropFolderIconResource        = -3979,
  106.     kSharedFolderIconResource    = -3978,
  107.     kMountedFolderIconResource    = -3977,
  108.     kControlPanelFolderIconResource = -3976,
  109.     kPrintMonitorFolderIconResource = -3975,
  110.     kPreferencesFolderIconResource = -3974,
  111.     kExtensionsFolderIconResource = -3973,
  112.     kFontsFolderIconResource    = -3968,
  113.     kFullTrashIconResource        = -3984
  114. };
  115.  
  116. enum {
  117. /* Obsolete. Use named constants defined above. */
  118.     startupFolderIconResource    = kStartupFolderIconResource,
  119.     ownedFolderIconResource        = kOwnedFolderIconResource,
  120.     dropFolderIconResource        = kDropFolderIconResource,
  121.     sharedFolderIconResource    = kSharedFolderIconResource,
  122.     mountedFolderIconResource    = kMountedFolderIconResource,
  123.     controlPanelFolderIconResource = kControlPanelFolderIconResource,
  124.     printMonitorFolderIconResource = kPrintMonitorFolderIconResource,
  125.     preferencesFolderIconResource = kPreferencesFolderIconResource,
  126.     extensionsFolderIconResource = kExtensionsFolderIconResource,
  127.     fontsFolderIconResource        = kFontsFolderIconResource,
  128.     fullTrashIconResource        = kFullTrashIconResource
  129. };
  130.  
  131. enum {
  132.     kLarge1BitMask                = 'ICN#',
  133.     kLarge4BitData                = 'icl4',
  134.     kLarge8BitData                = 'icl8',
  135.     kSmall1BitMask                = 'ics#',
  136.     kSmall4BitData                = 'ics4',
  137.     kSmall8BitData                = 'ics8',
  138.     kMini1BitMask                = 'icm#',
  139.     kMini4BitData                = 'icm4',
  140.     kMini8BitData                = 'icm8'
  141. };
  142.  
  143. enum {
  144. /* Obsolete. Use names defined above. */
  145.     large1BitMask                = kLarge1BitMask,
  146.     large4BitData                = kLarge4BitData,
  147.     large8BitData                = kLarge8BitData,
  148.     small1BitMask                = kSmall1BitMask,
  149.     small4BitData                = kSmall4BitData,
  150.     small8BitData                = kSmall8BitData,
  151.     mini1BitMask                = kMini1BitMask,
  152.     mini4BitData                = kMini4BitData,
  153.     mini8BitData                = kMini8BitData
  154. };
  155.  
  156. /*  alignment type values */
  157. enum {
  158.     kAlignNone                    = 0x0,
  159.     kAlignVerticalCenter        = 0x1,
  160.     kAlignTop                    = 0x2,
  161.     kAlignBottom                = 0x3,
  162.     kAlignHorizontalCenter        = 0x4,
  163.     kAlignAbsoluteCenter        = kAlignVerticalCenter | kAlignHorizontalCenter,
  164.     kAlignCenterTop                = kAlignTop | kAlignHorizontalCenter,
  165.     kAlignCenterBottom            = kAlignBottom | kAlignHorizontalCenter,
  166.     kAlignLeft                    = 0x8,
  167.     kAlignCenterLeft            = kAlignVerticalCenter | kAlignLeft,
  168.     kAlignTopLeft                = kAlignTop | kAlignLeft,
  169.     kAlignBottomLeft            = kAlignBottom | kAlignLeft,
  170.     kAlignRight                    = 0xC,
  171.     kAlignCenterRight            = kAlignVerticalCenter | kAlignRight,
  172.     kAlignTopRight                = kAlignTop | kAlignRight,
  173.     kAlignBottomRight            = kAlignBottom | kAlignRight
  174. };
  175.  
  176. enum {
  177. /* Obsolete. Use names defined above. */
  178.     atNone                        = kAlignNone,
  179.     atVerticalCenter            = kAlignVerticalCenter,
  180.     atTop                        = kAlignTop,
  181.     atBottom                    = kAlignBottom,
  182.     atHorizontalCenter            = kAlignHorizontalCenter,
  183.     atAbsoluteCenter            = kAlignAbsoluteCenter,
  184.     atCenterTop                    = kAlignCenterTop,
  185.     atCenterBottom                = kAlignCenterBottom,
  186.     atLeft                        = kAlignLeft,
  187.     atCenterLeft                = kAlignCenterLeft,
  188.     atTopLeft                    = kAlignTopLeft,
  189.     atBottomLeft                = kAlignBottomLeft,
  190.     atRight                        = kAlignRight,
  191.     atCenterRight                = kAlignCenterRight,
  192.     atTopRight                    = kAlignTopRight,
  193.     atBottomRight                = kAlignBottomRight
  194. };
  195.  
  196. typedef SInt16 IconAlignmentType;
  197.  
  198. /*  transform type values  */
  199.  
  200. enum {
  201.     kTransformNone                = 0x0,
  202.     kTransformDisabled            = 0x1,
  203.     kTransformOffline            = 0x2,
  204.     kTransformOpen                = 0x3,
  205.     kTransformLabel1            = 0x0100,
  206.     kTransformLabel2            = 0x0200,
  207.     kTransformLabel3            = 0x0300,
  208.     kTransformLabel4            = 0x0400,
  209.     kTransformLabel5            = 0x0500,
  210.     kTransformLabel6            = 0x0600,
  211.     kTransformLabel7            = 0x0700,
  212.     kTransformSelected            = 0x4000,
  213.     kTransformSelectedDisabled    = kTransformSelected | kTransformDisabled,
  214.     kTransformSelectedOffline    = kTransformSelected | kTransformOffline,
  215.     kTransformSelectedOpen        = kTransformSelected | kTransformOpen
  216. };
  217.  
  218. enum {
  219. /* Obsolete. Use names defined above. */
  220.     ttNone                        = kTransformNone,
  221.     ttDisabled                    = kTransformDisabled,
  222.     ttOffline                    = kTransformOffline,
  223.     ttOpen                        = kTransformOpen,
  224.     ttLabel1                    = kTransformLabel1,
  225.     ttLabel2                    = kTransformLabel2,
  226.     ttLabel3                    = kTransformLabel3,
  227.     ttLabel4                    = kTransformLabel4,
  228.     ttLabel5                    = kTransformLabel5,
  229.     ttLabel6                    = kTransformLabel6,
  230.     ttLabel7                    = kTransformLabel7,
  231.     ttSelected                    = kTransformSelected,
  232.     ttSelectedDisabled            = kTransformSelectedDisabled,
  233.     ttSelectedOffline            = kTransformSelectedOffline,
  234.     ttSelectedOpen                = kTransformSelectedOpen
  235. };
  236.  
  237. typedef SInt16 IconTransformType;
  238.  
  239. /*  Selector mask values  */
  240.  
  241. enum {
  242.     kSelectorLarge1Bit            = 0x00000001,
  243.     kSelectorLarge4Bit            = 0x00000002,
  244.     kSelectorLarge8Bit            = 0x00000004,
  245.     kSelectorSmall1Bit            = 0x00000100,
  246.     kSelectorSmall4Bit            = 0x00000200,
  247.     kSelectorSmall8Bit            = 0x00000400,
  248.     kSelectorMini1Bit            = 0x00010000,
  249.     kSelectorMini4Bit            = 0x00020000,
  250.     kSelectorMini8Bit            = 0x00040000,
  251.     kSelectorAllLargeData        = 0x000000FF,
  252.     kSelectorAllSmallData        = 0x0000FF00,
  253.     kSelectorAllMiniData        = 0x00FF0000,
  254.     kSelectorAll1BitData        = kSelectorLarge1Bit | kSelectorSmall1Bit | kSelectorMini1Bit,
  255.     kSelectorAll4BitData        = kSelectorLarge4Bit | kSelectorSmall4Bit | kSelectorMini4Bit,
  256.     kSelectorAll8BitData        = kSelectorLarge8Bit | kSelectorSmall8Bit | kSelectorMini8Bit,
  257.     kSelectorAllAvailableData    = 0xFFFFFFFFL
  258. };
  259.  
  260. enum {
  261. /* Obsolete. Use names defined above. */
  262.     svLarge1Bit                    = kSelectorLarge1Bit,
  263.     svLarge4Bit                    = kSelectorLarge4Bit,
  264.     svLarge8Bit                    = kSelectorLarge8Bit,
  265.     svSmall1Bit                    = kSelectorSmall1Bit,
  266.     svSmall4Bit                    = kSelectorSmall4Bit,
  267.     svSmall8Bit                    = kSelectorSmall8Bit,
  268.     svMini1Bit                    = kSelectorMini1Bit,
  269.     svMini4Bit                    = kSelectorMini4Bit,
  270.     svMini8Bit                    = kSelectorMini8Bit,
  271.     svAllLargeData                = kSelectorAllLargeData,
  272.     svAllSmallData                = kSelectorAllSmallData,
  273.     svAllMiniData                = kSelectorAllMiniData,
  274.     svAll1BitData                = kSelectorAll1BitData,
  275.     svAll4BitData                = kSelectorAll4BitData,
  276.     svAll8BitData                = kSelectorAll8BitData,
  277.     svAllAvailableData            = kSelectorAllAvailableData
  278. };
  279.  
  280. typedef UInt32 IconSelectorValue;
  281.  
  282. typedef pascal OSErr (*IconActionProcPtr)(ResType theType, Handle *theIcon, void *yourDataPtr);
  283.  
  284. #if GENERATINGCFM
  285. typedef UniversalProcPtr IconActionUPP;
  286. #else
  287. typedef IconActionProcPtr IconActionUPP;
  288. #endif
  289.  
  290. enum {
  291.     uppIconActionProcInfo = kPascalStackBased
  292.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  293.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
  294.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle*)))
  295.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  296. };
  297.  
  298. #if GENERATINGCFM
  299. #define NewIconActionProc(userRoutine)        \
  300.         (IconActionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconActionProcInfo, GetCurrentArchitecture())
  301. #else
  302. #define NewIconActionProc(userRoutine)        \
  303.         ((IconActionUPP) (userRoutine))
  304. #endif
  305.  
  306. #if GENERATINGCFM
  307. #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr)        \
  308.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconActionProcInfo, (theType), (theIcon), (yourDataPtr))
  309. #else
  310. #define CallIconActionProc(userRoutine, theType, theIcon, yourDataPtr)        \
  311.         (*(userRoutine))((theType), (theIcon), (yourDataPtr))
  312. #endif
  313.  
  314. typedef IconActionProcPtr IconAction;
  315.  
  316. typedef pascal Handle (*IconGetterProcPtr)(ResType theType, void *yourDataPtr);
  317.  
  318. #if GENERATINGCFM
  319. typedef UniversalProcPtr IconGetterUPP;
  320. #else
  321. typedef IconGetterProcPtr IconGetterUPP;
  322. #endif
  323.  
  324. enum {
  325.     uppIconGetterProcInfo = kPascalStackBased
  326.          | RESULT_SIZE(SIZE_CODE(sizeof(Handle)))
  327.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ResType)))
  328.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void*)))
  329. };
  330.  
  331. #if GENERATINGCFM
  332. #define NewIconGetterProc(userRoutine)        \
  333.         (IconGetterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIconGetterProcInfo, GetCurrentArchitecture())
  334. #else
  335. #define NewIconGetterProc(userRoutine)        \
  336.         ((IconGetterUPP) (userRoutine))
  337. #endif
  338.  
  339. #if GENERATINGCFM
  340. #define CallIconGetterProc(userRoutine, theType, yourDataPtr)        \
  341.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIconGetterProcInfo, (theType), (yourDataPtr))
  342. #else
  343. #define CallIconGetterProc(userRoutine, theType, yourDataPtr)        \
  344.         (*(userRoutine))((theType), (yourDataPtr))
  345. #endif
  346.  
  347. typedef IconGetterProcPtr IconGetter;
  348.  
  349. #if !OLDROUTINELOCATIONS
  350. struct CIcon {
  351.     PixMap                            iconPMap;                    /*the icon's pixMap*/
  352.     BitMap                            iconMask;                    /*the icon's mask*/
  353.     BitMap                            iconBMap;                    /*the icon's bitMap*/
  354.     Handle                            iconData;                    /*the icon's data*/
  355.     SInt16                            iconMaskData[1];            /*icon's mask and BitMap data*/
  356. };
  357. typedef struct CIcon CIcon, *CIconPtr, **CIconHandle;
  358.  
  359. extern pascal CIconHandle GetCIcon(SInt16 iconID)
  360.  ONEWORDINLINE(0xAA1E);
  361. extern pascal void PlotCIcon(const Rect *theRect, CIconHandle theIcon)
  362.  ONEWORDINLINE(0xAA1F);
  363. extern pascal void DisposeCIcon(CIconHandle theIcon)
  364.  ONEWORDINLINE(0xAA25);
  365. #endif
  366. extern pascal Handle GetIcon(SInt16 iconID)
  367.  ONEWORDINLINE(0xA9BB);
  368. extern pascal void PlotIcon(const Rect *theRect, Handle theIcon)
  369.  ONEWORDINLINE(0xA94B);
  370. extern pascal OSErr PlotIconID(const Rect *theRect, IconAlignmentType align, IconTransformType transform, SInt16 theResID)
  371.  THREEWORDINLINE(0x303C, 0x0500, 0xABC9);
  372. extern pascal OSErr NewIconSuite(Handle *theIconSuite)
  373.  THREEWORDINLINE(0x303C, 0x0207, 0xABC9);
  374. extern pascal OSErr AddIconToSuite(Handle theIconData, Handle theSuite, ResType theType)
  375.  THREEWORDINLINE(0x303C, 0x0608, 0xABC9);
  376. extern pascal OSErr GetIconFromSuite(Handle *theIconData, Handle theSuite, ResType theType)
  377.  THREEWORDINLINE(0x303C, 0x0609, 0xABC9);
  378. extern pascal OSErr ForEachIconDo(Handle theSuite, IconSelectorValue selector, IconActionUPP action, void *yourDataPtr)
  379.  THREEWORDINLINE(0x303C, 0x080A, 0xABC9);
  380. extern pascal OSErr GetIconSuite(Handle *theIconSuite, SInt16 theResID, IconSelectorValue selector)
  381.  THREEWORDINLINE(0x303C, 0x0501, 0xABC9);
  382. extern pascal OSErr DisposeIconSuite(Handle theIconSuite, Boolean disposeData)
  383.  THREEWORDINLINE(0x303C, 0x0302, 0xABC9);
  384. extern pascal OSErr PlotIconSuite(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconSuite)
  385.  THREEWORDINLINE(0x303C, 0x0603, 0xABC9);
  386. extern pascal OSErr MakeIconCache(Handle *theHandle, IconGetterUPP makeIcon, void *yourDataPtr)
  387.  THREEWORDINLINE(0x303C, 0x0604, 0xABC9);
  388. extern pascal OSErr LoadIconCache(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIconCache)
  389.  THREEWORDINLINE(0x303C, 0x0606, 0xABC9);
  390. extern pascal OSErr PlotIconMethod(const Rect *theRect, IconAlignmentType align, IconTransformType transform, IconGetterUPP theMethod, void *yourDataPtr)
  391.  THREEWORDINLINE(0x303C, 0x0805, 0xABC9);
  392. extern pascal OSErr GetLabel(SInt16 labelNumber, RGBColor *labelColor, Str255 labelString)
  393.  THREEWORDINLINE(0x303C, 0x050B, 0xABC9);
  394. extern pascal Boolean PtInIconID(Point testPt, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  395.  THREEWORDINLINE(0x303C, 0x060D, 0xABC9);
  396. extern pascal Boolean PtInIconSuite(Point testPt, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  397.  THREEWORDINLINE(0x303C, 0x070E, 0xABC9);
  398. extern pascal Boolean PtInIconMethod(Point testPt, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  399.  THREEWORDINLINE(0x303C, 0x090F, 0xABC9);
  400. extern pascal Boolean RectInIconID(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  401.  THREEWORDINLINE(0x303C, 0x0610, 0xABC9);
  402. extern pascal Boolean RectInIconSuite(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  403.  THREEWORDINLINE(0x303C, 0x0711, 0xABC9);
  404. extern pascal Boolean RectInIconMethod(const Rect *testRect, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  405.  THREEWORDINLINE(0x303C, 0x0912, 0xABC9);
  406. extern pascal OSErr IconIDToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, SInt16 iconID)
  407.  THREEWORDINLINE(0x303C, 0x0613, 0xABC9);
  408. extern pascal OSErr IconSuiteToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, Handle theIconSuite)
  409.  THREEWORDINLINE(0x303C, 0x0714, 0xABC9);
  410. extern pascal OSErr IconMethodToRgn(RgnHandle theRgn, const Rect *iconRect, IconAlignmentType align, IconGetterUPP theMethod, void *yourDataPtr)
  411.  THREEWORDINLINE(0x303C, 0x0915, 0xABC9);
  412. extern pascal OSErr SetSuiteLabel(Handle theSuite, SInt16 theLabel)
  413.  THREEWORDINLINE(0x303C, 0x0316, 0xABC9);
  414. extern pascal SInt16 GetSuiteLabel(Handle theSuite)
  415.  THREEWORDINLINE(0x303C, 0x0217, 0xABC9);
  416. extern pascal OSErr GetIconCacheData(Handle theCache, void **theData)
  417.  THREEWORDINLINE(0x303C, 0x0419, 0xABC9);
  418. extern pascal OSErr SetIconCacheData(Handle theCache, void *theData)
  419.  THREEWORDINLINE(0x303C, 0x041A, 0xABC9);
  420. extern pascal OSErr GetIconCacheProc(Handle theCache, IconGetterUPP *theProc)
  421.  THREEWORDINLINE(0x303C, 0x041B, 0xABC9);
  422. extern pascal OSErr SetIconCacheProc(Handle theCache, IconGetterUPP theProc)
  423.  THREEWORDINLINE(0x303C, 0x041C, 0xABC9);
  424. extern pascal OSErr PlotIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theIcon)
  425.  THREEWORDINLINE(0x303C, 0x061D, 0xABC9);
  426. extern pascal OSErr PlotSICNHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, Handle theSICN)
  427.  THREEWORDINLINE(0x303C, 0x061E, 0xABC9);
  428. extern pascal OSErr PlotCIconHandle(const Rect *theRect, IconAlignmentType align, IconTransformType transform, CIconHandle theCIcon)
  429.  THREEWORDINLINE(0x303C, 0x061F, 0xABC9);
  430.  
  431. #if PRAGMA_IMPORT_SUPPORTED
  432. #pragma import off
  433. #endif
  434.  
  435. #if PRAGMA_ALIGN_SUPPORTED
  436. #pragma options align=reset
  437. #endif
  438.  
  439. #ifdef __cplusplus
  440. }
  441. #endif
  442.  
  443. #endif /* __ICONS__ */
  444.